import axios from "axios"

import NProgress  from "nprogress";
import "nprogress/nprogress.css"

// 二次封装axios

let instance = axios.create({
    timeout:5000   // 请求的超时时间
})

//请求拦截器
instance.interceptors.request.use((config)=>{
    //请求配置项
    // console.log(config);

    // 展示进度条
    NProgress.start();

    // 必须返回 config
    return config;
})


//响应拦截器
instance.interceptors.response.use(
    (response)=>{
         // 关闭进度条
        NProgress.done();

        switch(response.data.code){
            case 200 :
                return response.data.data;
            default:
                  //必须返回 response  完整的响应体
                  return response.data;
        }
      
    },
    (error)=>{
        
        // 关闭进度条
        NProgress.done();

        // 统一输出错误信息
        console.log("响应拦截器---- 请求失败！！！");

        // 1. 返回一个失败状态的Promise
        // return Promise.reject();

        // 2. 返回一个pending 状态的Promise,中断Promise链
        return new Promise(()=>{});

    }
)


//暴露
export default instance;